#pragma once
#include "vec3.h"
#include "vec2.h"

namespace mray{
	typedef unsigned int uint;
	typedef long long int64;
	typedef unsigned long long uint64;
	typedef unsigned char uchar;

	//constants
	const float PI = 3.1415926535897932384626f;
	const float INV_PI = 1.0f/PI;
	const float INV_TWOPI = 1.f/(PI*2.f);
	const float INV_256 = 1.0f/256.f;
	const float kEpsilon = 1e-20f;
	const float Bias = 1e-3f;
	//colors
	const vec3 RED(1.0f, 0.0f, 0.0f);
	const vec3 GREEN(0.0f, 1.0f, 0.0f);
	const vec3 BLUE(0.0f, 0.0f, 1.0f);
	const vec3 YELLOW(1.0f, 1.0f, 0.0f);
	const vec3 CYAN(0.0f, 1.0f, 1.0f);
	const vec3 VIOLET(1.0f, 0.0f, 1.0f);
	const vec3 WHITE(1.0f, 1.0f, 1.0f);
	const vec3 BLACK(0.0f,0.0f,0.0f);
	const vec3 GREY(0.5f, 0.5f, 0.5f);
	const vec3 ORIGINAL_POINT3D(0.0f, 0.0f, 0.0f);
	const vec2 ORIGINAL_POINT2D(0.0f, 0.0f);
	const vec3 UNIT_AXIS_X(1.f, 0.f, 0.f, 0.f);
	const vec3 UNIT_AXIS_Y(0.f, 1.f, 0.f, 0.f);
	const vec3 UNIT_AXIS_Z(0.f, 0.f, 1.f, 0.f);
}